package com.patent.common;

import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;

import java.util.Date;

/**
 * @create 2018-05-31 20:39
 **/
public class QiNiuUtil {

	/**
	 * 上传文件到七牛云，返回文件名
	 * @param byteA
	 * @return
	 */
	public static String uploadFile(byte[] byteA){
		//构造一个带指定Zone对象的配置类
		Configuration cfg = new Configuration(Zone.zone0());
		//...其他参数参考类注释
		UploadManager uploadManager = new UploadManager(cfg);
		//...生成上传凭证，然后准备上传
		String accessKey = "w_dDgD3PnMHEOieoprYd2OAh5VeBEWKW9EPyurPg";
		String secretKey = "CTIZZcFE4PpuZbh-e5yb-j3vlabBCBhNyB1C-_U9";
		String bucket = "patent";
		//默认不指定key的情况下，以文件内容的hash值作为文件名
		Date date=new Date();
		long times=date.getTime();//当前毫秒数
		String key = "tempOrderExcel_" + String.valueOf(times) + ".xlsx";
		try {
			//byte[] uploadBytes = "hello qiniu cloud".getBytes("utf-8");
			//ByteArrayInputStream byteInputStream=new ByteArrayInputStream(uploadBytes);
			Auth auth = Auth.create(accessKey, secretKey);
			String upToken = auth.uploadToken(bucket);
			try {
				Response response = uploadManager.put(byteA, key, upToken);
				//解析上传成功的结果
				DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
				if(putRet != null){
					return putRet.key;
				}
			} catch (QiniuException ex) {
				Response r = ex.response;
				System.err.println(r.toString());
				try {
					System.err.println(r.bodyString());
				} catch (QiniuException ex2) {
					//ignore
				}
			}
		} catch (Exception ex) {
			//ignore
		}
		return null;
	}

}
